聚类分析(Cluster Analysis)及操作过程
物以类聚,人以群分,聚类分析是一种重要的多变量统计方法,但记住其实它是一种数据分析方法,不能进行统计推断的。当然,聚类分析主要应用在市场细分等领域,我们也经常采用聚类分析技术来实现对抽样框的分层,我就不多罗嗦了。
聚类分析:顾名思义是一种分类的多元统计分析方法。按照个体或样品(individuals, objects or subjects)的特征将它们分类,使同一类别内的个体具有尽可能高的同质性(homogeneity),而类别之间则应具有尽可能高的异质性(heterogeneity)。
我们也可以对变量进行聚类—分类,但是更常见的还是对个体分类(样本聚类——细分)。为了得到比较合理的分类,首先要采用适当的指标来定量地描述研究对象(样本或变量,常用的是样本)之间的联系的紧密程度。常用的指标为“距离”和“相似系数”,假定研究对象均用所谓的“点”来表示。
在聚类分析中,一般的规则是将“距离”较小的点或“相似系数”较大的点归为同一类,将“距离”较大的点或“相似系数”较小的点归为不同的类!(一般的相似系数就是相关系数了)
基本概念:
需要一组表示个体性质或特征的变量,称之为聚类变量。根据个体或样本之间联系的紧密程度进行分类。一般来说分类变量的组合都是由研究者规定的,不是像其它多元分析方法那样估计推导出来的。
聚类分析前所有个体或样本所属的类别是未知的,类别个数一般也是未知的,分析的依据就是原始数据,没有任何事先的有关类别的信息可参考。所以:严格说来聚类分析并不是纯粹的统计技术,它不像其它多元分析法那样,需要从样本去推断总体。聚类分析一般都涉及不到有关统计量的分布,也不需要进行显著性检验。聚类分析更像是一种建立假设的方法,而对假设的检验还需要借助其它统计方法。
聚类方法:
聚类分析简单、直观。
聚类分析主要应用于探索性的研究,其分析的结果可以提供多个可能的解,选择最终的解需要研究者的主观判断和后续的分析;
不管实际数据中是否真正存在不同的类别,利用聚类分析都能得到分成若干类别的解;
聚类分析的解完全依赖于研究者所选择的聚类变量,增加或删除一些变量对最终的解都可能产生实质性的影响。
研究者在使用聚类分析时应特别注意可能影响结果的各个因素。
异常值和特殊的变量对聚类有较大影响
当分类变量的测量尺度不一致时,需要事先做标准化处理。
当然,聚类分析不能做的事情是:
自动发现和告诉你应该分成多少个类——属于非监督类分析方法
期望能很清楚的找到大致相等的类或细分市场是不现实的;
样本聚类,变量之间的关系需要研究者决定;
不会自动给出一个最佳聚类结果;
我这里提到的聚类分析主要是谱系聚类(hierarchical clustering)和快速聚类(K-means)、两阶段聚类(Two-Step);
根据聚类变量得到的描述两个个体间(或变量间)的对应程度或联系紧密程度的度量。
可以用两种方式来测量:
采用描述个体对(变量对)之间的接近程度的指标,例如“距离”,“距离”越小的个体(变量)越具有相似性。
采用表示相似程度的指标,例如“相关系数”,“相关系数”越大的个体(变量)越具有相似性。
计算聚类——距离指标D(distance)的方法非常多:按照数据的不同性质,可选用不同的距离指标。欧氏距离(Euclideandistance)、欧氏距离的平方(Squared Euclidean distance)、曼哈顿距离(Block)、切比雪夫距离(Chebychev distance)、卡方距离(Chi-aquare measure) 等;相似性也有不少,主要是皮尔逊相关系数了!
注意:上面主要在谱系聚类方法中采用,但谱系聚类主要用在变量聚类上,如果对样本聚类样本不能太多了,否则你要等很长时间,还不一定有用!
总体推荐:
聚类变量的测量尺度不同,需要事先对变量标准化;
聚类变量中如果有些变量非常相关,意味着这个变量的权重会更大
欧式距离的平方是最常用的距离测量方法;
聚类算法要比距离测量方法对聚类结果影响更大;
标准化方法影响聚类模式:
变量标准化倾向产生基于数量的聚类;
样本标准化倾向产生基于模式的聚类;
一般聚类个数在4-6类,不易太多,或太少;
数据挖掘软件中的聚类更理想
当然我现在聚类都用数据挖掘技术了,其实聚类分析采用数据挖掘技术更合理,毕竟是发现知识,我们事先不知道是否存在显著差异的细分市场,而且往往在统计分析聚类中,需要研究者主观给出聚类变量,得到的结果也可能是研究者或客户能想到的,往往客户最希望得到事先不知道的,直觉不能感知到的,数据挖掘就体现了这一点。当然采用数据挖掘软件得到的聚类结果,也更直观,最重要的是采用SPSS聚类的结果要呈现出来,是个体力活,用Clementine得到的结果就非常容易看出来和理解了!
关于市场细分中的聚类分析,主要是采用两阶段聚类或快速聚类,一般要先进行因子分析,聚类分析,类的识别,聚成几类,类的稳定性测试,选择目标类,定位,描述细分市场,市场营销组合等。
聚类分析不是统计方法,是一种数据处理技术,也就是说在SPSS里面,有时候你的数据排序改变,聚类的结果都会改变;
还要记住:如果市场上不存在明显的细分市场,只要聚类总是能够按照聚类要求分成类的,这时候你就要注意了,如果采用不同的聚类方法,总是能够聚成大致相等(样本)的类,先不要高兴,可能就是不存在有差异细分市场;这就像一个球或圆,按照要求总能分割成大致相等的块一样;
还要记住:如果市场存在着明显的细分市场,也就是差远很大的类,无论什么细节技术或聚类技术都应该得到类似的结果;难点主要是细分不明显的时候,需要依赖方法了,尝试不同的聚类方法!
我记得曾经做过一个市场细分项目,因为我没有能够得到满意的细分市场,或者说无法解释清楚细分市场的独特性,客户提出一个问题:你尝试了各种聚类结果吗?当时还没有数据挖掘技术,不过因为这个要求,我把聚类过程和可能的情况有了新的认识,与大家分享:
上面的样本,实际上存在不同的类,但粗看可能看不出来,但是如果我们采用聚类分析,就可以得到如下可能结果:
比较明显的可以看出,上面的样本在两个维度上存在着五个不同类别。
现在我们来看看聚类分析的基本思路和思考:
1)市场细分:是采用聚类分析的主要目的,主要分成监督类和非监督类,我们现在讨论的是非监督类方法,就是事先不知道是否存在细分市场,也就是事后细分;
这就需要我们采用市场研究的方法收集目标市场消费者的分类变量和关键性描述信息。
在收集和分析所有相关信息之前,市场细分并不确定。
采用多元统计分析技术识别细分市场,并将消费者按一定的算法规则划分为不同的市场。
2)具体分成多少类:没有一个统一的答案。
经验、直觉、统计结果和常识判断,所有这些都可以用来决定市场细分的个数。
如果细分后存在着几个非常小的市场,需要修正分类标准,或者将原始资料中的异常值剔除掉。
如果市场被划分得太细的话,将导致对一些小的、相似性的市场采用许多不同的市场营销策略。
3)数据预处理-因子分析:一般在社会科学和市场研究领域的事后细分,往往我们面对的是态度量表,也就是希望从消费者的消费行为,社会态度和价值观等层面进行细分,那么我们聚类就面临着要进行数据预处理;这里一般都会设计到因子分析。
根据量表的信度和效度得到的因子应该有意义和进行因子命名,否则后面的聚类都是根据因子名称来理解的;
原始变量需要进行标准化,但是因子分析后得到的因子已经是标准化变量了;
一种思路直接用因子进行聚类分析,因子是正交的,得到的是“清晰”的聚类结果;但是记住:有时候更适合聚类的因子分析是采用斜交因子!所以,我们如果目标是聚类的话,要考虑斜交方法;
一种思路是放弃因子,而采用原始变量,但这时候要考虑选择每个因子负荷前几个的变量,最好数量相当,否则某些变量越相关,意味着权重越大;
4)数量还是模式:得到因子后要明确是基于量的聚类还是基于模式的聚类,这个差异是非常大的;
从上面我们可以看出:基于量的聚类A和B,C和D是一类,但基于模式则A和C,B和D是一路;
记住:所以在聚类变量的标准化要考虑这一点。
5)聚类数量:一般从3-7个不断尝试,如果你用SPSS软件,建议事项保证样本是排序的;
6)类的评估:一般我们可以采用类均值的F检验,看不同类在F统计量上的差异,也就是每个类在聚类变量上的显著差异:
上面的3个类,进行方差分析,得到F统计量,我们可以看到,F值越大说明分成3类的主要差异在什么变量上;
7)测试不同的聚类结果:同上想法,我们可以尝试在4类后的情况发生什么变化,然后把3类和4类结果进行交互分析,看看3类变成4类到底在哪里发生变化,主要影响变量是什么因素影响:
8)最后,针对可能的稳定聚类,测试每个变量(最初的量表)在各个类的F统计量,看看最初的原始变量(不是因子)的影响特性;
9)把最后确定的聚类结果写入原始数据集,进行类命名;
10)采用判别分析,判别类和聚类变量的可视化,画判别图,进一步识别类的特征
11) 采用对应分析和多元对应分析,识别类的属性和关键类(细分)表述变量,比如:性别、年龄、职业、收入、消费特性等;
12)采用CHAID分类决策树,自动侦测进一步识别类的特性;
记住:
为了得到比较好的结果,我们一般现在都采用Two-step聚类,这样可以把定类变量纳入聚类
如果希望得到稳定的聚类结果,可以在聚类分析的时候提供类中心——一般来自分类均值
聚类结果得到的细分市场一定是研究者能表述并有营销手段达到目标市场的
细分不光为自己找到细分市场,也为竞争对手细分了市场
注:本文来源于@沈浩老师博客,而编辑由@计量哥完成。
Stata操作过程(分层聚类)
读取数据:
use http://www.stata-press.com/data/r15/labtech
做Cluster singlelinkage聚类(最短Euclidean距离归为一类):
cluster singlelinkage x1 x2 x3 x4, name(sngeuc)
我们新产生了一个叫sngeuc的Cluster目标,里面有id,order,以及height。
cluster list sngeuc
上面可以看出这个Cluster分析到底有些什么变量,使用了什么方法。
cluster dendrogram sngeuc, xlabel(, angle(90) labsize(*.75))
主要是通过看这个dendrogram图来了解是否存在明显的聚类,这个27,3,14,6,42,31,8,30,17,48 order的数存在聚类。
graph matrix x1 x2 x3 x4
为了发现为什么上面说到的那些order数值存在聚类现象,我们可以做一个类似于上图这种x1,x2,x3,x4各自为横纵坐标的图,很遗憾并没有发现什么明显的相关性。
cluster dendrogram sngeuc, labels(labtech) xlabel(, angle(90) labsize(*.75))
现在我们把那个label改一下,改成各个实验室人员的名称,那看看是不是各个试验室人员导致的聚类出现,很明显Sam出现了明显的聚类,而其他的就不那么显著了。
注:很多时候,我们都会在某一方面犯错,因此望各位善意地指点出来。
@计量经济学圈
记录一个我们生活在其中的时代社会,一个非常具有潜力的深度与客观兼具的大号,囊括的主题如下:经济、社会、历史、新闻、世界、计量工具。
注:除了特别标注来源的部分,其他则是出自@计量经济学圈,转载请联系@计量哥。